2、等差素数列

题目 等差素数列

image-9489a600

思路分析

暴力枚举

枚举起点和公差 往后推九项 若每一项都是素数 就说明这个公差可以 结束程序即可

核心就是一个判断素数 可以用试除法

代码实现

#include<bits/stdc++.h>

using namespace std;

const int N=100010;

set<int> primes;

bool st[N];

bool is_prime(int x)

{

	if(x<2)

		return false;

	for(int i=2;i<=x/i;i++){

		if(x%i==0)

			return false;

	}

	return true;

}

int main()

{

	//枚举 起点 和 公差

	for(int i=2;i<10000;i++){

		if(is_prime(i)){

			for(int d=1;d<=1000;d++){

				int cnt=1;

				//往后推9项

				for(int n=2;n<=10;n++){

                    if(isprime(i+(n-1)*d)){

						cnt++;

					}

					else{

						cnt=0;

						break;

					}

					if(cnt==10){

						cout<<d;

						return 0;

					}

				}

			}

		}

	}

	return 0;

}

同类题型

视频讲解


⬅️ 1、购物单 🏠 00-刷题理模型 ➡️ 3、承压计算